Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
tsconfig-resolver
Advanced tools
[![GitHub Actions Build Status](https://github.com/ifiokjr/tsconfig-resolver/workflows/Node%20CI/badge.svg)](https://github.com/ifiokjr/tsconfig-resolver/actions?query=workflow%3A%22Node+CI%22) [![Version][version]][npm] [![Weekly Downloads][downloads-bad
A tool for loading the nearest tsconfig file in the same way the TypeScript compiler does. It walks up the directory tree until it finds the first matching tsconfig.json
file.
tsconfig-resolver
is designed to be used inside your node project.
First, install the plugin and it's peer dependencies:
npm install --save tsconfig-resolver
or
yarn add tsconfig-resolver
The following will load the first tsconfig.json
file working upwards from the process.cwd()
of the running node process.
import { tsconfigResolver } from 'tsconfig-resolver';
const result = tsconfigResolver();
// without type narrowing
console.log(result?.config);
// with type narrowing
if (result.exists) {
console.log(result.config);
}
Configuration options can also be passed into the export function.
import { tsconfigResolver, CacheStrategy } from 'tsconfig-resolver';
import { join } from 'path';
const result = tsconfig({
cwd: join(__dirname, 'src'),
fileName: 'tsconfig.prod.json',
cacheStrategy: CacheStrategy.Directory,
});
tsconfigResolver
import { tsconfigResolver } from 'tsconfig-resolver';
The function returns an object consisting of the following.
Property | Type | Description |
---|---|---|
config | TsConfigJson or undefined | The configuration object.
|
exists | boolean | Whether or not the configuration could be loaded.
|
reason | TsConfigErrorReason or undefined | The reason for failure.
|
path | string or undefined | The absolute path to the tsconfig.json or given filename.
|
Property | Type | Default | Description |
---|---|---|---|
cwd | string | process.cwd() | The directory to start searching from. |
fileName | string | 'tsconfig.json' | Set the file name of the config file to search for. |
cacheStrategy | string | CacheStrategy.Never | Set the caching strategy that will be used when searching for a file that's already been found. |
clearCache
Clears the cache.
import { tsconfigResolver, clearCache } from 'tsconfig-resolver';
const result = tsconfigResolver();
// Now clear the cache.
clearCache();
CacheStrategy
import { CacheStrategy } from 'tsconfig-resolver';
Provides the available caching strategies that can be used.
Sometimes you'll want to run this module several times during runtime but it can be slow and expensive walk up the file tree for the tsconfig value every time.
To help prevent unnecessary lookups there are custom caching strategies available.
CacheStrategy.Never
- Caching never happens and the returned value is always recalculatedCacheStrategy.Always
- The first time the tsconfigResolver
method is run it will save a cached value (by fileName
) which will be returned every time after that. This value will always be the same.CacheStrategy.Directory
- The cache will be used when the same directory (and fileName
) is being searched.TsConfigErrorReason
import { TsConfigErrorReason } from 'tsconfig-resolver';
This provides the reason for the error in resolving the tsconfig
.
TsConfigErrorReason.NotFound
- The tsconfig
file could not be found.TsConfigErrorReason.InvalidConfig
- The file was found but the configuration was invalid.TsConfigJson
Re-exported from type-fest
.
Dive into the codebase with Gitpod.
This project uses SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the MIT License - see the LICENSE file for details
FAQs
Walk up the tree to resolve `tsconfig.json` configuration objects.
We found that tsconfig-resolver demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.